# 窗口中显示webview，及新窗口显示webview
# 主窗口居中显示

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout, QLabel
from PyQt5.QtGui import QScreen, QGuiApplication
from PyQt5.QtCore import QPoint,QUrl

# from pywebview import create_window
# 不是import pywebview,而是import webview
import webview
from webview import create_window 
from PyQt5.QtWebEngineWidgets import QWebEngineView

class MainWindow(QMainWindow,QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        layout = QVBoxLayout()
        layout.addWidget(QLabel("Hello, World!"))

        self.setLayout(layout)
        self.setWindowTitle("PyQt5 Desktop Widget")

        # 设置窗口大小  
        self.resize(800, 600)  
  
        # 使窗口居中显示  
        screen = QGuiApplication.primaryScreen()  
        screen_rect = screen.geometry()  
        width, height = self.width(), self.height()  
        self.move(screen_rect.center() - QPoint(width // 2, height // 2))
        # QPoint只接受int类型，所以需要用width // 2，而width / 2得到会是float类型，导致错误

        # 创建一个QWebEngineView实例  
        self.browser = QWebEngineView()  
        # 设置WebView为中央窗口部件  
        self.setCentralWidget(self.browser)  
        # 加载百度  
        self.browser.load(QUrl("https://www.baidu.com"))

def main():
    app = QApplication(sys.argv)

    # 创建一个PyQt5窗口
    main_window = MainWindow()
    main_window.show()

    # 创建一个新窗口，并指定要加载的URL  
    window = create_window('Baidu Search', 'https://www.baidu.com')  
    # 保持窗口打开，直到用户关闭它  
    webview.start()
    # # window.show() #不需要此句，也会打开web窗口
    # 请注意，pywebview库并不直接提供窗体内部的WebView控件来嵌入到现有的窗体框架中。
    # 相反，它创建了一个全新的窗口，并在这个窗口中加载WebView。
    # 但是，你可以设置这个窗口的大小和位置来使其填满整个屏幕或特定的父窗体（如果支持的话）
    # 然而，如果你使用的是像Qt、wxPython或Tkinter这样的GUI框架，
    # 并希望在其中嵌入一个WebView控件，那么你将需要使用这些框架提供的WebView控件或相关的库
    # （如Qt的QWebView或QWebEngineView，Tkinter的tkinterwebview等）。

    sys.exit(app.exec_())

if __name__ == "__main__":
    main()